預計下週末才要做出來的東西,沒想到今天就完成了。
昨天一直卡在玩家的遊戲規則。
遊戲規則是電腦一關給一個新提示,但玩家每一關都要按之前所有關卡的顏色。
遊戲規則是:
玩家已經到第三關。目前累積的顏色會有兩組,比如說已經累積了紅色、紅色,那第三關會給一個新顏色(假設是黃色),那在第三關就要依序按出:紅色、紅色、黃色。
我昨天一直卡著的地方是,Javascript 只會檢查我最後一個顏色是否對而已... 在這卡太久一個不小心就錯過 Day 2 發文時間而中斷了比賽......
今天查了 Array 用法,終於想通是怎麼寫了。
if (gamePattern[userClickedPattern.length-1] === userClickedPattern[userClickedPattern.length-1]) {
console.log("success");
if (userClickedPattern.length === gamePattern.length){
// Call nextSequence() after a 1000 millisecond delay.
setTimeout(function () {
nextSequence();
}, 1000);
userClickedPattern = []
}
} else {
console.log("wrong");
failTransition();
}
問題出在昨天沒有把 userClickedPattern = []
寫在 function 後面,所以每次按都記得我所有按過的。應該要給一個空陣列,這樣玩家才能每次都從頭開始按,然後再去對比隨機給出來的顏色陣列。
這是課程中的截圖,玩起來會像是這樣:
另外因為這作業是為了要練習 jQuery,可是我改成用 Javascript, CSS, HTML,所以除了遊戲邏輯以外的功能就沒全部照著課程做 XD,但我覺得體驗上不會差太多啦哈哈哈。
我的成品:https://wscindy.github.io/simonGame/
課程中的範例:https://londonappbrewery.github.io/Simon-Game/